package com.zy.controller;


import com.alibaba.dubbo.config.annotation.Reference;
import com.zy.constant.MessageConstant;
import com.zy.entity.PageResult;
import com.zy.entity.QueryPageBean;
import com.zy.entity.Result;
import com.zy.pojo.CheckItem;
import com.zy.service.CheckItemService;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/checkitem")
public class CheckItemController {

	@Reference
	private CheckItemService checkItemService;


	@PreAuthorize("hasAuthority('CHECKITEM_ADD')")
	@RequestMapping("/add.do")
	public Result add(@RequestBody CheckItem checkItem) {
		try {
			checkItemService.add(checkItem);
//			System.out.println(1/0);
		} catch (Exception e) {
			e.printStackTrace();
			return new Result(false, MessageConstant.ADD_CHECKITEM_FAIL);
		}
		return new Result(true,MessageConstant.ADD_CHECKITEM_SUCCESS);
	}

	@RequestMapping("/findPage")
	public PageResult findPage(@RequestBody QueryPageBean queryPageBean){
		PageResult pageResult = checkItemService.pageQuery(queryPageBean);
		return pageResult;
	}

	@PreAuthorize("hasAuthority('CHECKITEM_DELETE')")
	@RequestMapping("/delete")
	public Result delete(Integer id){
		try {
			checkItemService.delete(id);
		} catch (Exception e) {
			return new Result(false, MessageConstant.DELETE_CHECKITEM_FAIL);
		}
		return new Result(true,MessageConstant.DELETE_CHECKGROUP_SUCCESS);
	}

	@PreAuthorize("hasAuthority('CHECKITEM_EDIT')")
	@RequestMapping("/edit")
	public Result edit(@RequestBody CheckItem checkItem){
		try {
			checkItemService.edit(checkItem);
		} catch (Exception e) {
			e.printStackTrace();
			return new Result(false,MessageConstant.EDIT_CHECKITEM_FAIL);
		}
		return  new Result(true,MessageConstant.EDIT_CHECKITEM_SUCCESS);
	}

	@RequestMapping("/findAll")
	public Result findAll(){
		List<CheckItem> checkItemList = checkItemService.findAll();
		if(checkItemList!=null && checkItemList.size()>0){
			Result result = new Result(true, MessageConstant.QUERY_CHECKITEM_SUCCESS);
			result.setData(checkItemList);
			return result;
		}
		return new Result(false,MessageConstant.QUERY_CHECKITEM_FAIL);
	}
	@RequestMapping("/findAllOrder")
	public Result findAllOrder(Integer id){
		List<CheckItem> checkItemList;
		try {
			checkItemList = checkItemService.findAllOrder(id);
		} catch (Exception e) {
			e.printStackTrace();
			return new Result(false,MessageConstant.QUERY_CHECKGROUP_FAIL);
		}
		return new Result(true,MessageConstant.QUERY_CHECKITEM_SUCCESS,checkItemList);
	}
}
